№1
#include <iomanip>
#include <iostream>
using namespace std;

int main(){
    int n = 5, m, max = 0, max_n = 0, max_m = 0;
    int **B;
    B = new int*[n];
    cout << "Введите m: ";
    cin >> m;
    for (int i = 0; i < n; i++) {
        B[i] = new int[m];
    }
    
    //заполняем матрицу рандомными числами до 100
    srand(time(NULL));
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            B[i][j] = (rand()%100);
        }
    }
    
    //печатаем исходную матрицу
    cout << "Иcходная матрица:" << endl;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            cout << setw(2) << B[i][j] << " ";
        }
        cout << endl;
    }
    
    //ищим max элемент
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            if (max < B[i][j]){
                max = B[i][j];
                max_n = i; max_m = j;
            }
        }
    }
    
    //создаём вторую матрицу
    int **A;
    A = new int*[n-1];
    for (int i = 0; i < n-1; i++) {
        A[i] = new int[m-1];
    }
    
    //заполняем вторую матрицу
    for(int i = 0; i < n-1; i++){
        for(int j = 0; j < m-1; j++){
            int temp_i = 0, temp_j = 0;
            if (i < max_n){
                temp_i = i;
            }else{
                temp_i = i+1;
            }
            if (j < max_m){
                temp_j = j;
            }else{
                temp_j = j+1;
            }
            A[i][j] = B[temp_i][temp_j];
        }
    }
    
    //удаляем исходную матрицу
    for(int i = 0; i < n; i++){
        delete[] B[i];
    }
    delete[] B;
    
    //печатаем итог
    cout << endl << "Обрезанная матрица:" << endl;
    for(int i = 0; i < n-1; i++){
        for(int j = 0; j < m-1; j++){
            cout << setw(2) << A[i][j] << " ";
        }
        cout << endl;
    }
}






№2
#include <iomanip>
#include <iostream>
using namespace std;

int main(){
    int n, m;
    int **B;
    cout << "Введите n: ";
    cin >> n;
    B = new int*[n];
    cout << "Введите m: ";
    cin >> m;
    for (int i = 0; i < n; i++) {
        B[i] = new int[m];
    }
    
    //заполняем матрицу рандомными числами до 100
    srand(time(NULL));
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            B[i][j] = (rand()%100);
        }
    }
    
    //печатаем исходную матрицу
    cout << "Иcходная матрица:" << endl;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            cout << setw(2) << B[i][j] << " ";
        }
        cout << endl;
    }
    
    //создаём вторую матрицу
    int **A;
    A = new int*[n+1];
    for (int i = 0; i < n+1; i++) {
        A[i] = new int[m+1];
    }
    
    int sum_B = 0;
    //i-n j-m
    for(int i = 0; i < n; i++){
        int sum = 0;
        for(int j = 0; j < m; j++){
            sum+=B[i][j];
        }
        A[i][m] = sum;
    }
    for(int j = 0; j < m; j++){
        int sum = 0;
        for(int i = 0; i < n; i++){
            sum+=B[i][j];
            sum_B+=B[i][j];
        }
        A[n][j] = sum;
        A[n][m] = sum_B;
    }
    
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            A[i][j] = B[i][j];
        }
    }
    
    cout << "Итоговая матрица матрица:" << endl;
    for(int i = 0; i < n+1; i++){
        for(int j = 0; j < m+1; j++){
            cout << setw(3) << A[i][j] << " ";
        }
        cout << endl;
    }
}





